namespace RadioTimer.Services
{
    /// <summary>
    /// 前台服务接口
    /// 提供跨平台的前台服务管理功能
    /// 在Android平台上实现为真正的前台服务，其他平台上提供空实现
    /// </summary>
    public interface IForegroundService
    {
        /// <summary>
        /// 异步启动前台服务
        /// 在Android平台上会创建一个前台服务以防止应用被系统杀死
        /// </summary>
        /// <returns>异步任务</returns>
        Task StartAsync();
        
        /// <summary>
        /// 异步停止前台服务
        /// 停止正在运行的前台服务并释放相关资源
        /// </summary>
        /// <returns>异步任务</returns>
        Task StopAsync();
        
        /// <summary>
        /// 获取前台服务是否正在运行的状态
        /// </summary>
        bool IsRunning { get; }
        
        /// <summary>
        /// 服务状态变更事件
        /// 当前台服务状态发生变化时触发，传递状态描述信息
        /// </summary>
        event EventHandler<string>? StatusChanged;
    }
}